package com.ruoyi.system.service;

import java.util.List;

import com.ruoyi.system.domain.SysContractRefund;
import com.ruoyi.system.domain.SysContractRefundLabel;

/**
 * 合同退费明细Service接口
 *
 * @author ruoyi
 * @date 2025-06-29
 */
public interface ISysContractRefundLabelService
{
    /**
     * 查询合同退费明细
     *
     * @param id 合同退费明细主键
     * @return 合同退费明细
     */
    public SysContractRefundLabel selectSysContractRefundLabelById(Long id);

    /**
     * 查询合同退费明细列表
     *
     * @param sysContractRefundLabel 合同退费明细
     * @return 合同退费明细集合
     */
    public List<SysContractRefundLabel> selectSysContractRefundLabelList(SysContractRefundLabel sysContractRefundLabel);

    /**
     * 根据退费主键查询退费明细
     * @param refundId
     * @return
     */
    public List<SysContractRefundLabel> selectSysContractRefundLabelListByRefundId(Long refundId);

    /**
     * 新增合同退费明细
     *
     * @param sysContractRefundLabel 合同退费明细
     * @return 结果
     */
    public int insertSysContractRefundLabel(SysContractRefundLabel sysContractRefundLabel);

    /**
     * 修改合同退费明细
     *
     * @param sysContractRefundLabel 合同退费明细
     * @return 结果
     */
    public int updateSysContractRefundLabel(SysContractRefundLabel sysContractRefundLabel);

    /**
     * 批量删除合同退费明细
     *
     * @param ids 需要删除的合同退费明细主键集合
     * @return 结果
     */
    public int deleteSysContractRefundLabelByIds(Long[] ids);

    /**
     * 删除合同退费明细信息
     *
     * @param id 合同退费明细主键
     * @return 结果
     */
    public int deleteSysContractRefundLabelById(Long id);

    /**
     * 退费明细新增判断方法
     * @param sysContractRefundLabel
     */
    public void emptyInsertSysContractRefundLabel(SysContractRefundLabel sysContractRefundLabel);

    /**
     * 构建实体
     * @param sysContractRefundLabel
     * @return
     */
    public SysContractRefundLabel buildSysContractRefundLabel(SysContractRefundLabel sysContractRefundLabel);

    /**
     * 根据退费合同主键删除退费合同明细
     * @param contractRefundId
     * @return
     */
    public int deleteSysContractRefundLabelByContractRefundId(Long contractRefundId);
}